<!DOCTYPE html>
<html lang="zh-CN">
    <head><meta charset='utf-8'>
<meta name='viewport' content='width=device-width, initial-scale=1'><meta name='description' content='前言 刚看别人使用Docker的时候有很多不解，为什么要用Docker，Docker怎么用？Docker配置为什么这么难？为什么网络访问不通？等等因素阻碍了笔者学习Docker？其实笔者也很笨，有很多思考不清晰的点。顺便也分享下。
学时疑惑：
Q：我一套服务为什么不放在一个容器里面（Java、MySQL、Nginx、Redis等）？ A：因为既要维护容器内网络，又要维护端口等等之类的东西，Docker就是为了快速搭建环境而生的，而且Docker最好也是一个服务一个容器，这样好打理。
Q：Docker能放到生产环境吗？ A：在公司没有专门的运维团队情况下，不建议使用Docker部署的环境作为生产环境，因为不仅仅要维护项目和中间件，Docker或者Kubernetes出现问题后，还要解决这些问题，也就是还要解决Docker的问题。如果在没有专门运维团队的情况下，最好使用某里云的服务，例如RDS，SLB等，最起码别人还会帮你维护你的数据库和服务。
基本命令 下载镜像 1 2  # 以Redis为例子 docker pull redis   运行镜像 1 2 3 4 5 6  docker run \ -d \ # 后台运行 --name redis6 \ # 自定义名字 -p 6379:6379 \ # 端口映射 redis # 镜像名称 docker run -d --name redis6 -p 6379:6379 redis redis-server --appendonly yes --requirepass &amp;#34;123456&amp;#34; # 完整命令   进入容器 第一种（不推荐，当退出容器使用exit命令时，会停止这个容器）：
1  docker attach 容器id   第二种：'><title>Docker基本操作</title>

<link rel='canonical' href='https://www.walkingsky.top/p/docker%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/'>

<link rel="stylesheet" href="/scss/style.min.6e28907171ccdc82609ab6675872e3dc961a1b00f252b4d0a9299bde606269c3.css"><meta property='og:title' content='Docker基本操作'>
<meta property='og:description' content='前言 刚看别人使用Docker的时候有很多不解，为什么要用Docker，Docker怎么用？Docker配置为什么这么难？为什么网络访问不通？等等因素阻碍了笔者学习Docker？其实笔者也很笨，有很多思考不清晰的点。顺便也分享下。
学时疑惑：
Q：我一套服务为什么不放在一个容器里面（Java、MySQL、Nginx、Redis等）？ A：因为既要维护容器内网络，又要维护端口等等之类的东西，Docker就是为了快速搭建环境而生的，而且Docker最好也是一个服务一个容器，这样好打理。
Q：Docker能放到生产环境吗？ A：在公司没有专门的运维团队情况下，不建议使用Docker部署的环境作为生产环境，因为不仅仅要维护项目和中间件，Docker或者Kubernetes出现问题后，还要解决这些问题，也就是还要解决Docker的问题。如果在没有专门运维团队的情况下，最好使用某里云的服务，例如RDS，SLB等，最起码别人还会帮你维护你的数据库和服务。
基本命令 下载镜像 1 2  # 以Redis为例子 docker pull redis   运行镜像 1 2 3 4 5 6  docker run \ -d \ # 后台运行 --name redis6 \ # 自定义名字 -p 6379:6379 \ # 端口映射 redis # 镜像名称 docker run -d --name redis6 -p 6379:6379 redis redis-server --appendonly yes --requirepass &amp;#34;123456&amp;#34; # 完整命令   进入容器 第一种（不推荐，当退出容器使用exit命令时，会停止这个容器）：
1  docker attach 容器id   第二种：'>
<meta property='og:url' content='https://www.walkingsky.top/p/docker%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/'>
<meta property='og:site_name' content='walkingsky的博客小站'>
<meta property='og:type' content='article'><meta property='article:section' content='Post' /><meta property='article:published_time' content='2022-03-15T16:37:12&#43;08:00'/><meta property='article:modified_time' content='2022-03-15T16:37:12&#43;08:00'/>
<meta name="twitter:title" content="Docker基本操作">
<meta name="twitter:description" content="前言 刚看别人使用Docker的时候有很多不解，为什么要用Docker，Docker怎么用？Docker配置为什么这么难？为什么网络访问不通？等等因素阻碍了笔者学习Docker？其实笔者也很笨，有很多思考不清晰的点。顺便也分享下。
学时疑惑：
Q：我一套服务为什么不放在一个容器里面（Java、MySQL、Nginx、Redis等）？ A：因为既要维护容器内网络，又要维护端口等等之类的东西，Docker就是为了快速搭建环境而生的，而且Docker最好也是一个服务一个容器，这样好打理。
Q：Docker能放到生产环境吗？ A：在公司没有专门的运维团队情况下，不建议使用Docker部署的环境作为生产环境，因为不仅仅要维护项目和中间件，Docker或者Kubernetes出现问题后，还要解决这些问题，也就是还要解决Docker的问题。如果在没有专门运维团队的情况下，最好使用某里云的服务，例如RDS，SLB等，最起码别人还会帮你维护你的数据库和服务。
基本命令 下载镜像 1 2  # 以Redis为例子 docker pull redis   运行镜像 1 2 3 4 5 6  docker run \ -d \ # 后台运行 --name redis6 \ # 自定义名字 -p 6379:6379 \ # 端口映射 redis # 镜像名称 docker run -d --name redis6 -p 6379:6379 redis redis-server --appendonly yes --requirepass &amp;#34;123456&amp;#34; # 完整命令   进入容器 第一种（不推荐，当退出容器使用exit命令时，会停止这个容器）：
1  docker attach 容器id   第二种：">
    <link rel="shortcut icon" href="img/favicon.ico" />

    </head>
    <body class="
    article-page has-toc
">
    <script>
        (function() {
            const colorSchemeKey = 'StackColorScheme';
            if(!localStorage.getItem(colorSchemeKey)){
                localStorage.setItem(colorSchemeKey, "auto");
            }
        })();
    </script><script>
    (function() {
        const colorSchemeKey = 'StackColorScheme';
        const colorSchemeItem = localStorage.getItem(colorSchemeKey);
        const supportDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches === true;

        if (colorSchemeItem == 'dark' || colorSchemeItem === 'auto' && supportDarkMode) {
            

            document.documentElement.dataset.scheme = 'dark';
        } else {
            document.documentElement.dataset.scheme = 'light';
        }
    })();
</script>
<div class="container main-container flex 
    
        extended
    
">
    
        <div id="article-toolbar">
            <a href="/" class="back-home">
                <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-chevron-left" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <polyline points="15 6 9 12 15 18" />
</svg>



                <span>返回</span>
            </a>
        </div>
    
<main class="main full-width">
    <article class="main-article">
    <header class="article-header">

    <div class="article-details">
    

    <h2 class="article-title">
        <a href="/p/docker%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/">Docker基本操作</a>
    </h2>

    

    
    <footer class="article-time">
        
            <div>
                <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-calendar-time" width="56" height="56" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <path d="M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v4" />
  <circle cx="18" cy="18" r="4" />
  <path d="M15 3v4" />
  <path d="M7 3v4" />
  <path d="M3 11h16" />
  <path d="M18 16.496v1.504l1 1" />
</svg>
                <time class="article-time--published">2022-03-15</time>
            </div>
        

        
            <div>
                <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-clock" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <circle cx="12" cy="12" r="9" />
  <polyline points="12 7 12 12 15 15" />
</svg>



                <time class="article-time--reading">
                    阅读时长: 2 分钟
                </time>
            </div>
        
    </footer>
    
</div>
</header>

    <section class="article-content">
    
    
    <h3 id="前言">前言</h3>
<p>刚看别人使用Docker的时候有很多不解，为什么要用Docker，Docker怎么用？Docker配置为什么这么难？为什么网络访问不通？等等因素阻碍了笔者学习Docker？其实笔者也很笨，有很多思考不清晰的点。顺便也分享下。</p>
<p>学时疑惑：</p>
<p>Q：我一套服务为什么不放在一个容器里面（Java、MySQL、Nginx、Redis等）？
A：因为既要维护容器内网络，又要维护端口等等之类的东西，Docker就是为了快速搭建环境而生的，而且Docker最好也是一个服务一个容器，这样好打理。</p>
<p>Q：Docker能放到生产环境吗？
A：在公司没有专门的运维团队情况下，不建议使用Docker部署的环境作为生产环境，因为不仅仅要维护项目和中间件，Docker或者Kubernetes出现问题后，还要解决这些问题，也就是还要解决Docker的问题。如果在没有专门运维团队的情况下，最好使用某里云的服务，例如RDS，SLB等，最起码别人还会帮你维护你的数据库和服务。</p>
<h3 id="基本命令">基本命令</h3>
<h4 id="下载镜像">下载镜像</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"># 以Redis为例子
docker pull redis
</code></pre></td></tr></table>
</div>
</div><h4 id="运行镜像">运行镜像</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback">docker run \
-d \ # 后台运行
--name redis6 \ # 自定义名字
-p 6379:6379 \ # 端口映射
redis # 镜像名称
docker run -d --name redis6 -p 6379:6379 redis redis-server --appendonly yes --requirepass &#34;123456&#34; # 完整命令
</code></pre></td></tr></table>
</div>
</div><h4 id="进入容器">进入容器</h4>
<p>第一种（不推荐，当退出容器使用exit命令时，会停止这个容器）：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback">docker attach 容器id
</code></pre></td></tr></table>
</div>
</div><p>第二种：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback">docker exec -it 容器id /bin/bash
</code></pre></td></tr></table>
</div>
</div><h4 id="暂停容器">暂停容器</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback">docker stop 容器id
</code></pre></td></tr></table>
</div>
</div><h4 id="启动容器">启动容器</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback">docker start 容器id
</code></pre></td></tr></table>
</div>
</div><h4 id="查询容器列表">查询容器列表</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback">docker ps -a # 查看所有容器
docker ps # 查看运行中的容器
</code></pre></td></tr></table>
</div>
</div><p>run和start的区别：</p>
<ul>
<li>run是创建一个新的容器</li>
<li>start是把已经创建好的容器启动</li>
</ul>
<h4 id="查看容器信息">查看容器信息</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback">docker inspect 容器id
</code></pre></td></tr></table>
</div>
</div><h3 id="挂载">挂载</h3>
<h4 id="挂载介绍">挂载介绍</h4>
<p>容器里面的文件都是在容器内部，而跟你当前电脑是没有关系的，如果删除了容器怎么办？但是资料又想保存就像MySQL一样，我只是换一台电脑就要把整个容器复制过去，太麻烦了！所以需要把容器的文件跟当前主机文件作为一个<strong>映射</strong>。</p>
<h4 id="命令教程">命令教程</h4>
<p>参数-v宿主机路径:容器路径</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"># 以MySQL为例子
docker run -d --name mysql8 -p 3306:3306 -v /data/mysql8/config:/etc/mysql/conf.d -v /data/mysql8/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
# 以上的命令可以参考：https://hub.docker.com/_/mysql，里面有详细介绍
</code></pre></td></tr></table>
</div>
</div><h4 id="为什么要知道这么多路径或者参数">为什么要知道这么多路径或者参数</h4>
<p>每个中间件或者一个数据库容器，他可能需要有很多配置，例如密码，持久化文件的路径等等。那我们怎么知道路径是什么：</p>
<ol>
<li>可以进hub.docker.com找到自己需要的容器然后看文档</li>
<li>进容器找了（这个方法有点笨，笔者一开始就是这么找到的。）</li>
</ol>
<h3 id="网络">网络</h3>
<h4 id="容器之间怎么进行通讯">容器之间怎么进行通讯</h4>
<p>容器虽然是能相互通讯的，但是容器每次重启ip都跟上一次不一样，所以这样通讯会很复杂。</p>
<h4 id="示范">示范</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"># 先拉个CentOS镜像下来
docker pull centos
# 创建个容器
docker run -d -it --name centos1 centos
docker run -d -it --name centos2 centos

docker inspect centos1_id
</code></pre></td></tr></table>
</div>
</div><p>截取一些容器信息下来：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback">[
{
    &#34;NetworkSettings&#34;: {
        &#34;Networks&#34;: {
            &#34;bridge&#34;: {
                &#34;IPAMConfig&#34;: null,
                &#34;Links&#34;: null,
                &#34;Aliases&#34;: null,
                &#34;NetworkID&#34;: &#34;9e7ed6d29ca3474de04409833e39b7c7965c7c63d3a1f509886a7a998e4825f8&#34;,
                &#34;EndpointID&#34;: &#34;41230bf523fac8fa4933989d98baaaa7655fba5c5dadd14e63839ffe868ed3f8&#34;,
                &#34;Gateway&#34;: &#34;172.17.0.1&#34;,
                &#34;IPAddress&#34;: &#34;172.17.0.4&#34;,
                &#34;IPPrefixLen&#34;: 16,
                &#34;IPv6Gateway&#34;: &#34;&#34;,
                &#34;GlobalIPv6Address&#34;: &#34;&#34;,
                &#34;GlobalIPv6PrefixLen&#34;: 0,
                &#34;MacAddress&#34;: &#34;02:42:ac:11:00:04&#34;,
                &#34;DriverOpts&#34;: null
            }
        }
    }
}
] 
</code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback">docker inspect centos2_id
</code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback">[
{
    &#34;NetworkSettings&#34;: {
        &#34;Networks&#34;: {
            &#34;bridge&#34;: {
                &#34;IPAMConfig&#34;: null,
                &#34;Links&#34;: null,
                &#34;Aliases&#34;: null,
                &#34;NetworkID&#34;: &#34;9e7ed6d29ca3474de04409833e39b7c7965c7c63d3a1f509886a7a998e4825f8&#34;,
                &#34;EndpointID&#34;: &#34;8ae77d46887c795983ee7a8fb96951d05e236b4ca4b4caa5d5964f892e18a476&#34;,
                &#34;Gateway&#34;: &#34;172.17.0.1&#34;,
                &#34;IPAddress&#34;: &#34;172.17.0.5&#34;,
                &#34;IPPrefixLen&#34;: 16,
                &#34;IPv6Gateway&#34;: &#34;&#34;,
                &#34;GlobalIPv6Address&#34;: &#34;&#34;,
                &#34;GlobalIPv6PrefixLen&#34;: 0,
                &#34;MacAddress&#34;: &#34;02:42:ac:11:00:05&#34;,
                &#34;DriverOpts&#34;: null
            }
        }
    }
}
] 
</code></pre></td></tr></table>
</div>
</div><ul>
<li>以上centos1 ip为<strong>172.17.0.4</strong></li>
<li>以上centos2 ip为<strong>172.17.0.5</strong></li>
</ul>
<h4 id="解决问题">解决问题</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback">docker network create centos-network
docker run -d -it --network centos-network --name centos3 centos
docker run -d -it --network centos-network --name centos4 centos
docker exec -it centos3_id /bin/bash
ping centos4 
# 所以当创建了一个network后 容器都能加入到这个网络里面，很方便
</code></pre></td></tr></table>
</div>
</div><p>这样就可以解决每次容器重启后ip不一致问题。</p>
<h3 id="小结">小结</h3>
<p>其实在刚使用容器的时候会很麻烦：</p>
<ol>
<li>不知道Docker的命令和容器需要的参数</li>
<li>每次都要上官网找下有什么参数或者百度，但相比每次下载文件下来，进去配置省很多力气，并且配置一次保存好用过的命令，以后都可以用了，不需要再重复去改很多东西</li>
<li>其实在一些小型公司，没有专业的运维的话尽量不要在生产环境上使用Docker，不然真的出现问题的话会很头疼，不仅仅要维护项目，还要维护Docker</li>
</ol>
<p>原文链接：https://juejin.cn/post/6974427129748389902，作者：Kakki</p>

</section>


    <footer class="article-footer">
    

    </footer>


    
        <link 
                rel="stylesheet" 
                href="https://cdn.jsdelivr.net/npm/katex@0.13.13/dist/katex.min.css"integrity="sha384-RZU/ijkSsFbcmivfdRBQDtwuwVqK7GMOw6IMvKyeWL2K5UAlyp6WonmB8m7Jd0Hn"crossorigin="anonymous"
            ><script 
                src="https://cdn.jsdelivr.net/npm/katex@0.13.13/dist/katex.min.js"integrity="sha384-pK1WpvzWVBQiP0/GjnvRxV4mOb0oxFuyRxJlk6vVw146n3egcN5C925NCP7a7BY8"crossorigin="anonymous"
                defer
                >
            </script><script 
                src="https://cdn.jsdelivr.net/npm/katex@0.13.13/dist/contrib/auto-render.min.js"integrity="sha384-vZTG03m&#43;2yp6N6BNi5iM4rW4oIwk5DfcNdFfxkk9ZWpDriOkXX8voJBFrAO7MpVl"crossorigin="anonymous"
                defer
                >
            </script><script>
    window.addEventListener("DOMContentLoaded", () => {
        renderMathInElement(document.querySelector(`.article-content`), {
            delimiters: [
                { left: "$$", right: "$$", display: true },
                { left: "$", right: "$", display: false },
                { left: "\\(", right: "\\)", display: false },
                { left: "\\[", right: "\\]", display: true }
            ]
        });})
</script>
    
</article>

    

    <aside class="related-contents--wrapper">
    
    
</aside>

     
    
        
    

    <footer class="site-footer">
    <section class="copyright">
        &copy; 
        
        2022 walkingsky的博客小站
    </section>
    
    <section class="powerby">
        
            <a href="https://beian.miit.gov.cn/" target="_blank">京ICP备2020035791号-2</a><br /> <a target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010802038934" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;"><img src="https://img.walkinginsky.com/blog/beian.png" style="float:left;"/><p style="float:left;height:20px;line-height:20px;margin: 0px 0px 0px 5px; color:#939393;">京公网安备 11010802038934号</p></a> <br/>
        Built with <a href="https://gohugo.io/" target="_blank" rel="noopener">Hugo</a> <br />
        Theme <b><a href="https://github.com/CaiJimmy/hugo-theme-stack" target="_blank" rel="noopener" data-version="3.8.0">Stack</a></b> designed by <a href="https://jimmycai.com" target="_blank" rel="noopener">Jimmy</a>
    </section>
</footer>


    
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">

    
    <div class="pswp__bg"></div>

    
    <div class="pswp__scroll-wrap">

        
        <div class="pswp__container">
            <div class="pswp__item"></div>
            <div class="pswp__item"></div>
            <div class="pswp__item"></div>
        </div>

        
        <div class="pswp__ui pswp__ui--hidden">

            <div class="pswp__top-bar">

                

                <div class="pswp__counter"></div>

                <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>

                <button class="pswp__button pswp__button--share" title="Share"></button>

                <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>

                <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>

                
                
                <div class="pswp__preloader">
                    <div class="pswp__preloader__icn">
                        <div class="pswp__preloader__cut">
                            <div class="pswp__preloader__donut"></div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
                <div class="pswp__share-tooltip"></div>
            </div>

            <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
            </button>

            <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
            </button>

            <div class="pswp__caption">
                <div class="pswp__caption__center"></div>
            </div>

        </div>

    </div>

</div><script 
                src="https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe.min.js"integrity="sha256-ePwmChbbvXbsO02lbM3HoHbSHTHFAeChekF1xKJdleo="crossorigin="anonymous"
                defer
                >
            </script><script 
                src="https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe-ui-default.min.js"integrity="sha256-UKkzOn/w1mBxRmLLGrSeyB4e1xbrp4xylgAWb3M42pU="crossorigin="anonymous"
                defer
                >
            </script><link 
                rel="stylesheet" 
                href="https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/default-skin/default-skin.css"integrity="sha256-c0uckgykQ9v5k&#43;IqViZOZKc47Jn7KQil4/MP3ySA3F8="crossorigin="anonymous"
            ><link 
                rel="stylesheet" 
                href="https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe.css"integrity="sha256-SBLU4vv6CA6lHsZ1XyTdhyjJxCjPif/TRkjnsyGAGnE="crossorigin="anonymous"
            >

            </main>
    
        <aside class="sidebar right-sidebar sticky">
            <section class="widget archives">
                <div class="widget-icon">
                    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-hash" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <line x1="5" y1="9" x2="19" y2="9" />
  <line x1="5" y1="15" x2="19" y2="15" />
  <line x1="11" y1="4" x2="7" y2="20" />
  <line x1="17" y1="4" x2="13" y2="20" />
</svg>



                </div>
                <h2 class="widget-title section-title">目录</h2>
                
                <div class="widget--toc">
                    <nav id="TableOfContents">
  <ol>
    <li>
      <ol>
        <li><a href="#前言">前言</a></li>
        <li><a href="#基本命令">基本命令</a>
          <ol>
            <li><a href="#下载镜像">下载镜像</a></li>
            <li><a href="#运行镜像">运行镜像</a></li>
            <li><a href="#进入容器">进入容器</a></li>
            <li><a href="#暂停容器">暂停容器</a></li>
            <li><a href="#启动容器">启动容器</a></li>
            <li><a href="#查询容器列表">查询容器列表</a></li>
            <li><a href="#查看容器信息">查看容器信息</a></li>
          </ol>
        </li>
        <li><a href="#挂载">挂载</a>
          <ol>
            <li><a href="#挂载介绍">挂载介绍</a></li>
            <li><a href="#命令教程">命令教程</a></li>
            <li><a href="#为什么要知道这么多路径或者参数">为什么要知道这么多路径或者参数</a></li>
          </ol>
        </li>
        <li><a href="#网络">网络</a>
          <ol>
            <li><a href="#容器之间怎么进行通讯">容器之间怎么进行通讯</a></li>
            <li><a href="#示范">示范</a></li>
            <li><a href="#解决问题">解决问题</a></li>
          </ol>
        </li>
        <li><a href="#小结">小结</a></li>
      </ol>
    </li>
  </ol>
</nav>
                </div>
            </section>
        </aside>
    

        </div>
        <script 
                src="https://cdn.jsdelivr.net/npm/node-vibrant@3.1.5/dist/vibrant.min.js"integrity="sha256-5NovOZc4iwiAWTYIFiIM7DxKUXKWvpVEuMEPLzcm5/g="crossorigin="anonymous"
                
                >
            </script><script type="text/javascript" src="/ts/main.js" defer></script>
<script>
    (function () {
        const customFont = document.createElement('link');
        customFont.href = "https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&display=swap";

        customFont.type = "text/css";
        customFont.rel = "stylesheet";

        document.head.appendChild(customFont);
    }());
</script>

    </body>
</html>
